Skip to content

feat: implement Format for SmallVec - #472

Merged
alejandro-vaz merged 11 commits into
servo:v2from
alejandro-vaz:defmt
Aug 30, 2026
Merged

feat: implement Format for SmallVec#472
alejandro-vaz merged 11 commits into
servo:v2from
alejandro-vaz:defmt

Conversation

@alejandro-vaz

@alejandro-vaz alejandro-vaz commented Aug 29, 2026

Copy link
Copy Markdown
Collaborator

this PR implements defmt::Format for SmallVec

it does not implement the trait for its iterators

it is locked behind the feature gate "defmt"

this is the initial implementation of it, thus it won't close issue #389, it still lacks:

  • testing
  • implementations for iterators

note: it's not written on its own file as #427 moves towards because it is not an API boundary. it is not only the smallvec type that will implement Format, but also Drain, ExtractIf, etc => it is simply one feature-gated implementation on the types

closes #391

closes #473

@alejandro-vaz alejandro-vaz added this to the v2-beta.1 milestone Aug 29, 2026
@alejandro-vaz alejandro-vaz self-assigned this Aug 29, 2026
@alejandro-vaz

Copy link
Copy Markdown
Collaborator Author

note: do not merge this before #458 due to possible merge conflicts

@alejandro-vaz
alejandro-vaz requested a review from jdm August 29, 2026 03:52
@alejandro-vaz alejandro-vaz removed this from the v2-beta.1 milestone Aug 29, 2026
Comment thread Cargo.toml
Signed-off-by: Alejandro Vaz <alejandro.vaz.myt@gmail.com>
Signed-off-by: Alejandro Vaz <alejandro.vaz.myt@gmail.com>
Signed-off-by: Alejandro Vaz <alejandro.vaz.myt@gmail.com>
@alejandro-vaz
alejandro-vaz added this pull request to the merge queue Aug 30, 2026
Merged via the queue into servo:v2 with commit a397a1f Aug 30, 2026
6 checks passed
alejandro-vaz added a commit to alejandro-vaz/rust-smallvec that referenced this pull request Aug 30, 2026
* feat: added defmt for smallvec

* fix: ran formatter

* refactor: removed API boundary

* fix: ran formatter

* fix: renamed imports to avoid namespace conflicts

* refactor: simplified format for smallvec

* fix: style formatting

* fix: imports

---------

Signed-off-by: Alejandro Vaz <alejandro.vaz.myt@gmail.com>
alejandro-vaz added a commit to alejandro-vaz/rust-smallvec that referenced this pull request Aug 30, 2026
* fix: cargo warnings

* Turn all tests into integration tests (servo#495)

* Implement arbitrary::Arbitrary for SmallVec (servo#496)

Ports the implementation from the v1 branch to the v2 `SmallVec<T, const N>`
API, gated behind a new optional `arbitrary` feature. Delegates to
`Unstructured::arbitrary_iter` / `arbitrary_take_rest_iter` and collects via
the existing `FromIterator` impl. Adds a feature-gated test.

Closes servo#494

Signed-off-by: Jorge Polanco <55784702+Jorge-Polanco-Roque@users.noreply.github.com>

* docs: told agents to link to servo contributing guidelines (servo#504)

* fix: added since and note for deprecations (servo#488)

* style: updated `rustfmt.toml` guidelines (servo#490)

* fix: refined style

* refactor: new style

* fix: style

* revert: fn single line

* Turn all tests into integration tests (servo#495)

* Implement arbitrary::Arbitrary for SmallVec (servo#496)

Ports the implementation from the v1 branch to the v2 `SmallVec<T, const N>`
API, gated behind a new optional `arbitrary` feature. Delegates to
`Unstructured::arbitrary_iter` / `arbitrary_take_rest_iter` and collects via
the existing `FromIterator` impl. Adds a feature-gated test.

Closes servo#494

Signed-off-by: Jorge Polanco <55784702+Jorge-Polanco-Roque@users.noreply.github.com>

* docs: told agents to link to servo contributing guidelines (servo#504)

* fix: added since and note for deprecations (servo#488)

* refactor: new style

* revert: fn single line

* fix: import errors solved

* fix: formatting

* fix: style again

---------

Signed-off-by: Jorge Polanco <55784702+Jorge-Polanco-Roque@users.noreply.github.com>
Signed-off-by: Alejandro Vaz <alejandro.vaz.myt@gmail.com>
Co-authored-by: Tobias Decking <Tobias.Decking@gmail.com>
Co-authored-by: Jorge Polanco <55784702+Jorge-Polanco-Roque@users.noreply.github.com>

* feat: added borsh serialize (servo#486)

* feat: added borsh serialize

* fix: formatting

* fix: style formatting

---------

Signed-off-by: Alejandro Vaz <alejandro.vaz.myt@gmail.com>

* feat: implement `Format` for `SmallVec` (servo#472)

* feat: added defmt for smallvec

* fix: ran formatter

* refactor: removed API boundary

* fix: ran formatter

* fix: renamed imports to avoid namespace conflicts

* refactor: simplified format for smallvec

* fix: style formatting

* fix: imports

---------

Signed-off-by: Alejandro Vaz <alejandro.vaz.myt@gmail.com>

* fix: cargo warnings

---------

Signed-off-by: Jorge Polanco <55784702+Jorge-Polanco-Roque@users.noreply.github.com>
Signed-off-by: Alejandro Vaz <alejandro.vaz.myt@gmail.com>
Co-authored-by: Tobias Decking <Tobias.Decking@gmail.com>
Co-authored-by: Jorge Polanco <55784702+Jorge-Polanco-Roque@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

defmt initial implementation

2 participants